/*
 * UMediaCodecName.cpp
 *
 *  Created on: 2016年5月1日
 *      Author: terry
 */

#include "UMediaCodecName.h"
#include <string>
#include "UMediaType.h"


UMediaCodecName::UMediaCodecName()
{
}

UMediaCodecName::~UMediaCodecName()
{
}

struct CodecName
{
	int codec;
	const char* name;
};

static CodecName s_codecNames[] =
{
	{UMEDIA_CODEC_H264, "H264"},
	{UMEDIA_CODEC_HEVC, "HEVC"},
	{UMEDIA_CODEC_G711U, "PCMU"},
	{UMEDIA_CODEC_G711A, "PCMA"},
	{UMEDIA_CODEC_MP3, "MP3"},
	{UMEDIA_CODEC_AAC, "AAC"},
	{UMEDIA_CODEC_AC3, "AC3"},
	{UMEDIA_CODEC_VORBIS, "VORBIS"},
	{UMEDIA_CODEC_RAW, "RAW"},
};

const char* UMediaCodecName::getName(int codec)
{
	for (size_t i = 0; i < sizeof(s_codecNames)/sizeof(s_codecNames[0]); i ++)
	{
		if (codec == s_codecNames[i].codec)
		{
			return s_codecNames[i].name;
		}
	}
	return "";
}

int UMediaCodecName::codecFromName(const char* name)
{
	std::string str(name);
	for (size_t i = 0; i < sizeof(s_codecNames)/sizeof(s_codecNames[0]); i ++)
	{
		if (str == s_codecNames[i].name)
		{
			return s_codecNames[i].codec;
		}
	}
	return UMEDIA_CODEC_NONE;
}


